package com.dragon.modules.yuegou.model.pay;

import com.dragon.modules.yuegou.entity.pay.PointNotifyEntity;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 微信智慧商圈快速积分回调信息表模型类
 * 
 * @author pbuilder generated
 * @date 2020-11-20 10:32:50
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class PointNotify extends PointNotifyEntity {

	/**
	 * 构造一个空微信智慧商圈快速积分回调信息表模型对象
	 */
	public PointNotify(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个微信智慧商圈快速积分回调信息表模型对象
	 * 
	 * @param entity 实体对象
	 */
	public PointNotify(PointNotifyEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个微信智慧商圈快速积分回调信息表模型对象
	 * 
	 * @param other 其它对象
	 */
	public PointNotify(PointNotify other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置
	 * 
	 * @param id 
	 * @return 当前对象
	 */
    public PointNotify id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public LocalDateTime getCreateTime() {
    	return createTime;
    }

    /**
	 * 设置创建时间
	 * 
	 * @param createTime 创建时间
	 * @return 当前对象
	 */
    public PointNotify createTime(LocalDateTime createTime) {
    	this.createTime = createTime;
    	return this;
    }

	@Override
	public String getEventType() {
    	return eventType;
    }

    /**
	 * 设置通知类型
	 * 
	 * @param eventType 通知类型
	 * @return 当前对象
	 */
    public PointNotify eventType(String eventType) {
    	this.eventType = eventType;
    	return this;
    }

	@Override
	public String getResourceType() {
    	return resourceType;
    }

    /**
	 * 设置通知数据类型
	 * 
	 * @param resourceType 通知数据类型
	 * @return 当前对象
	 */
    public PointNotify resourceType(String resourceType) {
    	this.resourceType = resourceType;
    	return this;
    }

	@Override
	public String getSummary() {
    	return summary;
    }

    /**
	 * 设置回调摘要
	 * 
	 * @param summary 回调摘要
	 * @return 当前对象
	 */
    public PointNotify summary(String summary) {
    	this.summary = summary;
    	return this;
    }

	@Override
	public String getResAlgorithm() {
    	return resAlgorithm;
    }

    /**
	 * 设置加密算法类型
	 * 
	 * @param resAlgorithm 加密算法类型
	 * @return 当前对象
	 */
    public PointNotify resAlgorithm(String resAlgorithm) {
    	this.resAlgorithm = resAlgorithm;
    	return this;
    }

	@Override
	public String getResCiphertext() {
    	return resCiphertext;
    }

    /**
	 * 设置加密串 暂时不存 预留字段
	 * 
	 * @param resCiphertext 加密串 暂时不存 预留字段
	 * @return 当前对象
	 */
    public PointNotify resCiphertext(String resCiphertext) {
    	this.resCiphertext = resCiphertext;
    	return this;
    }

	@Override
	public String getResOriginalType() {
    	return resOriginalType;
    }

    /**
	 * 设置原始回调类型
	 * 
	 * @param resOriginalType 原始回调类型
	 * @return 当前对象
	 */
    public PointNotify resOriginalType(String resOriginalType) {
    	this.resOriginalType = resOriginalType;
    	return this;
    }

	@Override
	public String getResAssociatedData() {
    	return resAssociatedData;
    }

    /**
	 * 设置附加数据
	 * 
	 * @param resAssociatedData 附加数据
	 * @return 当前对象
	 */
    public PointNotify resAssociatedData(String resAssociatedData) {
    	this.resAssociatedData = resAssociatedData;
    	return this;
    }

	@Override
	public String getResNonce() {
    	return resNonce;
    }

    /**
	 * 设置随机串
	 * 
	 * @param resNonce 随机串
	 * @return 当前对象
	 */
    public PointNotify resNonce(String resNonce) {
    	this.resNonce = resNonce;
    	return this;
    }

	@Override
	public String getMchid() {
    	return mchid;
    }

    /**
	 * 设置resource解密对象_商户号
	 * 
	 * @param mchid resource解密对象_商户号
	 * @return 当前对象
	 */
    public PointNotify mchid(String mchid) {
    	this.mchid = mchid;
    	return this;
    }

	@Override
	public String getMerchantName() {
    	return merchantName;
    }

    /**
	 * 设置resource解密对象_商圈商户名称
	 * 
	 * @param merchantName resource解密对象_商圈商户名称
	 * @return 当前对象
	 */
    public PointNotify merchantName(String merchantName) {
    	this.merchantName = merchantName;
    	return this;
    }

	@Override
	public String getShopName() {
    	return shopName;
    }

    /**
	 * 设置resource解密对象_门店名称
	 * 
	 * @param shopName resource解密对象_门店名称
	 * @return 当前对象
	 */
    public PointNotify shopName(String shopName) {
    	this.shopName = shopName;
    	return this;
    }

	@Override
	public String getShopNumber() {
    	return shopNumber;
    }

    /**
	 * 设置resource解密对象_门店编号
	 * 
	 * @param shopNumber resource解密对象_门店编号
	 * @return 当前对象
	 */
    public PointNotify shopNumber(String shopNumber) {
    	this.shopNumber = shopNumber;
    	return this;
    }

	@Override
	public String getAppid() {
    	return appid;
    }

    /**
	 * 设置公众账号ID
	 * 
	 * @param appid 公众账号ID
	 * @return 当前对象
	 */
    public PointNotify appid(String appid) {
    	this.appid = appid;
    	return this;
    }

	@Override
	public String getOpenid() {
    	return openid;
    }

    /**
	 * 设置用户标识
	 * 
	 * @param openid 用户标识
	 * @return 当前对象
	 */
    public PointNotify openid(String openid) {
    	this.openid = openid;
    	return this;
    }

	@Override
	public String getTimeEnd() {
    	return timeEnd;
    }

    /**
	 * 设置交易完成时间
	 * 
	 * @param timeEnd 交易完成时间
	 * @return 当前对象
	 */
    public PointNotify timeEnd(String timeEnd) {
    	this.timeEnd = timeEnd;
    	return this;
    }

	@Override
	public Integer getAmount() {
    	return amount;
    }

    /**
	 * 设置金额
	 * 
	 * @param amount 金额
	 * @return 当前对象
	 */
    public PointNotify amount(Integer amount) {
    	this.amount = amount;
    	return this;
    }

	@Override
	public String getTransactionId() {
    	return transactionId;
    }

    /**
	 * 设置微信支付订单号
	 * 
	 * @param transactionId 微信支付订单号
	 * @return 当前对象
	 */
    public PointNotify transactionId(String transactionId) {
    	this.transactionId = transactionId;
    	return this;
    }

	@Override
	public String getCommitTag() {
    	return commitTag;
    }

    /**
	 * 设置手动提交积分标记
	 * 
	 * @param commitTag 手动提交积分标记
	 * @return 当前对象
	 */
    public PointNotify commitTag(String commitTag) {
    	this.commitTag = commitTag;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置
	 * 
	 * @param createdTime 
	 * @return 当前对象
	 */
    public PointNotify createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }
}
